<!DOCTYPE html>
<html lang="zh">
<head>
	<meta charset="UTF-8">
	<meta http-equiv="X-UA-Compatible" content="IE=edge">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<title>Document</title>
</head>
<body>
	构造函数
	 专门用来创建对象  ==》   对象的代工厂
	 1、构造函数在命名习惯首字母大写；
	 2、调用方式的不同
		普通函数 ==》直接调用
		构造函数 ==》直接通过new来调用
	 构造函数的执行流程  ===  new干了什么事
		1、在内存中创建了一个新对象。
		2、让this指向这个新的对象。
		3、通过执行构造函数里边的代码，给这个新对象添加属性和方法。
		4、返回这个新对象（所以构造函数不需要return。
</body>
	<script>
		function fn(){
			console.log(123);
		}
		fn();
		function Obj(){
			
		}
		var a = new Obj();
		
		
		function Fn1(tname,age,sex){
			this.tname = tname;
			this.age = age;
			this.sex = sex;
			// this.methed = function(){
			// } 
		}
		Fn1.prototype.methed = function(){
			console.log("我喜欢唱歌");
		}
		
		var zs = new Fn1('张三',18,'男');
		console.log(zs);
		zs.methed();
		// var ww = new Fn('王五',18,'男');
		// console.log(zs);
		// ww.methed();
		
		// instanceof   可以检查一个对象是否是一个类的实例
		// 类 ==>  构造函数
		// 实例 ==>   通过构造函数创建的对象
		console.log(zs);
		
		
		console.log(zs.__proto__ );
		console.log(Fn1.prototype);
		console.log(zs.__proto__ == Fn1.prototype);
		// 每一个对象都有一个__proto__
	</script>
</html>